// 哈希函数

// 设计哈希函数
// 1、将字符串转为比较大的数字：hashCode
// 2、将大的数字hashCode压缩到数组范围之类
function hashFunc(str, size) {
  // 1、定义hashCode变量
  var hashCode = 0
  // 2、霍纳算法，计算hashCode的值
  for (var i = 0; i < str.length; i++) {
    // 获取当前的Unicode编码，常用哈希质数是37
    hashCode = 37 * hashCode + str.charCodeAt(i)
  }
  // 取余操作
  var index = hashCode % size
  return index
}

// 测试哈希函数
console.log(hashFunc('abc', 7))
console.log(hashFunc('cba', 7))
console.log(hashFunc('nba', 7))
console.log(hashFunc('mba', 7))
